1. Field of the Invention
The present invention relates to data driven information processors, and particularly to a data driven information processor that carries out processing using a data packet in which a plurality of operand data are stored.
2. Description of the Background Art
FIGS. 18A-18D show the structure of a conventional data driven information processor and a data packet disclosed in Japanese Patent Laying-Open No. 9-114664.
Referring to FIG. 18A, a conventional data driven information processor includes an input unit 100 to which a port Pi (i=1, 2, 3, . . . n) is connected to input external data, a junction unit 101, a paired data detection unit 102, an operation apparatus 103, a program storage unit 104 and a branch unit 105.
FIG. 18B is a block diagram of a portion of operation apparatus 103. FIGS. 18C and 18D show respective examples of the field structure of a conventional data packet.
The data packet of FIG. 18C includes a field F1 storing instruction information OP, a field F2 storing destination information DN, a field F3 storing a generation number GN, and a field F4 storing at least one data Di (i=1, 2, 3, . . . n).
In program storage unit 104 of FIG. 18A, a data flow program is prestored. The data flow program includes a plurality of program data corresponding to a set of instruction information OP and destination information DN.
Instruction information OP serves to identify the operation executed on the contents of corresponding data field F4. Destination information DN is used to read out the subsequent program data from program storage unit 104. Reading out program data from program storage unit 104 is referred to as xe2x80x9cprogram fetchxe2x80x9d hereinafter. Generation number GN serves to identify a plurality of data packets having the same destination information DN. Data Di implies a plurality of data applied to input unit 100 via port Pi, corresponding in number to the number of ports Pi. In this example, the plurality of data Di in field F4 share the same instruction information OP, destination information DN and generation number GN.
When data Di which is a portion of data in field F4 of the data packet is to be used in the operation in the data driven information processor of FIG. 18A, the field structure of the data packet shown in FIG. 18D is employed. In the data packet of FIG. 18D, a data field F50 is provided instead of data field F4 of FIG. 18C. The remaining field structure of FIG. 18D is similar to that of FIG. 18C, and description thereof will not be repeated. Field F50 includes a flag V corresponding to each data Di. Flag V indicates whether the corresponding data Di is to be used in the operation, i.e., valid data, or not used in the operation, i.e. invalid data.
Input unit 100 of FIG. 18A receives plurality of data individually through port Pi serving to input externally applied data to the data driven information processor. The data is stored in field F4 in one data packet of FIG. 18C. Then, that data packet is output. Junction unit 101 arbitrates and inputs the data packets output from input unit 100 and branch unit 105, which is sequentially output to paired data detection unit 102. Paired data detection unit 102 effects the matching operation of the data packets applied from junction unit 100. As to the data packets forming a pair, i.e. two different data packets with matching destination information DN, the contents in data field F4 of one data packet is stored in data field F4 of the other data packet, and that other data packet is output. Accordingly, data Di that is to become the two operand data for a dyadic operation, for example, is detected as the paired data. Here, one of the paired data is referred to as LDi (i=1, 2, 3, . . . n) and the other of the paired data is referred to as RDi (i=1, 2, 3, . . . n).
Operation apparatus 103 receives the data packet output from paired data detection unit 102 to decode instruction information OP in the received data packet and applies a predetermined processing on data Di stored in data field F4 in the received data packet according to the decoded result. The result is stored in data field F4 of the received data packet to be output.
Program storage unit 104 receives the data packet output from operation apparatus 103 to read out the subsequent destination information DN and the subsequent instruction information OP from the data flow program according to addressing based on destination information DN of the received data packet. The readout information are stored in fields F2 and F1, respectively, of the received data packet. Then, that data packet is output. Branch unit 105 receives the data packet output from program storage unit 104 to provide that data packet outside of the data driven information processor or to junction unit 101 according to destination information DN in the received data packet.
Operation apparatus 103 includes a plurality of operation units OPUi (i=1, 2, 3, . . . n) to which the paired data (LDi and RDi) and instruction information OP of the data packet input to operation apparatus 103 are applied. Each operation unit (OPUi) simultaneously processes each corresponding paired data according to instruction information OP. The processed result is output as data Di. Output data Di is each stored in field F4 of the input data packet. Then, that data packet is output.
In the above-described conventional data driven information processor, a plurality of operation units (OPUi) that carry out the same operation on each data Di in the data packet are prepared. These operation units (OPUi) carry out processing based on common instruction information OP. This means that all data Di in the data packet are unconditionally subjected to the same operation. In order to apply an operation only on desired data Di in data field F4, the data packet must be divided prior to the operation to carry out a predetermined operation on the desired data Di by a corresponding operation unit (OPUi), followed by a combining process for the divided data packets. Thus, the process becomes redundant in the conventional data driven information processor for an operation that is to be applied only on desired data Di in data field F4.
To apply an operation only on desired data Di in the conventional data driven information processor, the data packet of FIG. 18D is used to effect the operation selectively on data Di having a flag V that indicates valid data, i.e. on only the desired data Di. By employing this method, redundancy of the process is eliminated since the dividing and combining processes of the data packets are not required. However, the size of the data packet becomes larger since the region to store flag V is additionally required for each data Di in the data packet. The width of the data transmission path of the data driven information processor is increased to obviate reduction in the size of the processor.
An object of the present invention is to provide a data driven information processor that can improve the efficiency of computing operation using a data packet in which a plurality of operand data are stored.
To achieve the above object, the data driven information processor of the present invention includes a paired data detection unit, a processing unit, and a control unit. The paired data detection unit sequentially receives a data packet including at least a destination field to store destination information, an instruction field to store instruction information, and a data field to store a plurality of data independent of each other to detect two different received data packets forming a pair. The contents of the data field of one received data packet detected as a pair are stored into the data field of the other input packet detected as the pair. Then, that other data packet is output.
The processing unit receives the data packet output from the paired data detection unit to apply operation individually on each of the plurality of data in the data field of the received data packet according to the instruction information in the information field. Then, that received data packet is output.
The control unit includes a program storage unit in which a data flow program including a plurality of instruction information and destination information are stored. In operation, the control unit receives the data packet output from the processing unit to store the subsequent instruction information and subsequent destination information read out from the program storage unit into the instruction field and destination field of the received data packet. That received data packet is output to at least the paired data detection unit. The data driven information processor of the above-described structure is characterized as set forth in the following.
The data packet further includes a reflect designation field. Corresponding to each of the plurality of data in the data field, reflect designation information designating whether to reflect the result of the data processed in the process according to the subsequent instruction information is stored in the reflect designation field. The processing unit includes a data select unit and information select unit corresponding to each of the plurality of data in the received data packet. The data select unit selects corresponding data in response to the reflect designation information in the received data packet designating non-reflection, and selects the processed result of corresponding data in response to the reflect designation information designating reflection, and stores the selected result in the data field of the received data packet. The information select unit selects the reflect designation information in response to the reflect designation information of the received data packet designating non-reflection and selects the reflect designation information set with contents corresponding to the processed result of the corresponding data in response to the reflect designation information designating reflection, and stores the reflect designation information of the selected result in the reflect designation field of the received data packet.
According to the data driven information processor of the present aspect, the data select unit and information select unit of the processing unit operate as set forth in the following when an operation process is executed according to the instruction information on the plurality of data in the received data packet. Using the corresponding reflect designation information, data that is designated to reflect the processed result in the process by the subsequent instruction information out of the plurality of data has its processed result and the reflect designation information set with contents according to the processed result stored in the received data packet, which is then output.
In the case where the processed result is to be obtained for only data that is to have the processed result reflected in the subsequent process out of the plurality of data in the data packet in the data driven information processor of the present aspect, the processing steps of dividing and combining the data packet is omitted. Therefore, the amount of data of the executed program and the number of data packets to be processed can be reduced in the data driven information processor, whereby the processing speed and processing efficiency are improved.
The data driven information processor of the present aspect is further characterized as set forth in the following. The data packet further includes a manipulation field in which is stored manipulation information to manipulate the contents of the reflect designation information in the reflect designation field. The processing unit further includes a manipulation unit. The manipulation unit manipulates the contents of the reflect designation information corresponding to each of the plurality of data in the data packet applied to the processing unit, based on the manipulation information in the applied data packet, and supplies the reflect designation information of the manipulated result to at least one of the data select unit and information select unit.
According to the data driven information processor of the present aspect, the processing unit has the contents of the reflect designation information in the input data packet manipulated by the manipulation unit based on the manipulation information, and applies the manipulated reflect designation information to at least one of the data select unit and information select unit.
When operation processing is executed according to the subsequent instruction information, at least one of the data select unit and information select unit is under control by the processing unit as set forth in the following based on the manipulation information irrespective of the reflect information set with the contents according to the processed result by the instruction information executed immediately before. Specifically, the data select unit can select data of the input data packet or select the processed result using the subsequent instruction information of the data. The information select unit can select the reflect designation information of the input data packet (in other words, retain (copy) the contents of the reflect designation information) or select reflect designation information set with contents according to the processed result of the subsequent instruction information.
Thus, even in the case where processing is carried out on the same data according to the same instruction information in the data driven information processor, a processed result similar to that where a plurality of types of instruction information are executed can be obtained by using manipulation information. Therefore, the types of instruction information required in information processing can be reduced. This means that processing similar to that of the conventional case can be executed using fewer instruction information. The processing speed can be improved and the program storage region can be reduced.
In the data driven information processor of the present aspect, the data packet further includes a data number field. Data number information indicating the number of data required to be subjected to an operation process out of the plurality of data in the data field is stored in the data number field. The data number field has a bit length corresponding to the number of the plurality of data to store the data number information. In the processing unit, a data select unit and information select unit corresponding to the number of data indicated by the data number information operate.
Therefore, the operation processed result and corresponding reflect designation information can be obtained for only the number of data that is to be subjected to the operation process. This provides the advantageous effect described in the following. Conventionally, information of one bit indicating whether an operation process is desired or not was added for each of the plurality of data in order to obtain the processed result for only the desired number of data to be subjected to the operation process. In contrast, the data number field in the data packet requires only the bit length corresponding to the number of the plurality of data in the data driven information processor of the present invention. Therefore, when there are at least three data, the length of the data packet can be reduced in comparison to the conventional case. Accordingly, the time required for data packet transmission and reading/writing the contents can be reduced in the data driven information processor of the present invention to improve the processing speed.
By the above-described data number information, the desired number of data that is to be subjected to an operation process can be identified out of the plurality of data in the data field.
According to another aspect of the present invention, a data driven information processor includes a paired data detection unit, a processing unit, and a control unit. The paired data detection unit sequentially receives a data packet including at least a destination field to store destination information, an instruction field to store instruction information and a data field to store a plurality of data independent of each other to detect two different received data packets forming a pair. The contents of the data field of one received packet detected as a pair are stored into the data field of the other received data packet of the detected pair. Then, the other data packet is output.
The processing unit receives the data packet output from the paired data detection unit to apply an operation process according to the instruction information in the instruction field on each of the plurality of data in the data field in the received data packet. Then, that received data packet is output.
The control unit includes a program storage unit in which is stored a data flow program including a plurality of instruction information and destination information. In operation, the control unit receives the data packet output from the processing unit to store the subsequent instruction information and subsequent destination information read out from the program storage unit into the instruction field and destination field, respectively, of the received data packet. That received data packet is output to at least the paired data detection unit. The data driven information processor of the above-described structure is characterized as set forth in the following.
The data packet further includes a data number field. The data number field has a bit length corresponding to the number of the plurality of data to store the number of desired data information indicating the number of data required to be subjected to an operation process. The processed result corresponding to the number of data indicated by the data number information out of the plurality of data is output to the processing unit.
Therefore, the processed result can be obtained for only the desired number of data that is to be subjected to an operation process. Conventionally, information of one bit indicating whether an operation process is required or not for each of the plurality of data is applied in the case where the processed result is to be obtained for only the desired number of data that is to be subjected to an operation process. In contrast, the data driven information processor of the present invention requires only the data length corresponding to the number of data in the data number field. The length of the data packet can be reduced than the conventional case when there are at least three data. Therefore, the time required for data packet transmission and reading/writing contents thereof can be reduced in the data driven information processor of the present invention to improve the processing speed.
Also, the number of data required to be subjected to an operation process out of the plurality of data in the data field can be identified by the data number information.
The foregoing and other objects, features, aspects and advantages of the present invention will become more apparent from the following detailed description of the present invention when taken in conjunction with the accompanying drawings.